1. Technical Field of the Invention
This invention pertains to an InfiniBand based long distance solution to replace proprietary Inter System Channel links. In particular, the present invention provides a flow control mechanism that does not use the InfiniBand-defined credit exchange, thus allowing transmission distances to be extended.
2. Description of the Prior Art
Credit based flow control is based upon communication exchange between senders and receivers of data. In general, a receiver will acknowledge to a sender that it is currently capable of receiving an amount of data. The sender, under a credit based protocol, will not send data unless such an acknowledgment is received. Such acknowledgments may also specify, perhaps cumulatively, as a receiver's buffer is unloaded, how much data can be received by a receiving device. Because these necessary exchanges between senders and receivers consume travel time, a large amount of data, e.g.megabytes, may need to be buffered while the exchanges are taking place. As transmission distances increase round trip travel time increases and so the buffer sizes must accommodate packets in transit while credit exchanges are taking place.
The Infiniband (“IB”) interface and protocol is useful for transmission of data packets over distances of approximately several hundred meters, depending on bandwidth requirements, without use of repeaters or intermediate switches. With repeaters, these distances can increase to hundreds of kilometers, however, the aforementioned round trip time consumed by credit exchanges is magnified. One solution for extending transmission distances over an IB interface is to override or disable IB flow controls that tend to waste bandwidth. Flow controls are useful to avoid data overruns, however, they require buffer resources at the receiver. Dropped packet detection together with throttling mechanisms are necessary when flow controls are disabled in order to detect dropped packets, due to slowed memory subsystems and buffer overruns, and to slow the data transmission rate. In these instances, request packets can be sent to the transmitting devices directing them to slow their rate of data transmission, for example.
Credit packets can each communicate varying amounts of credit, thus, they can be sent occasionally or frequently, as the case may be. Credit packets can each represent an absolute amount of available buffer space in the receiver or they can represent increments of buffer memory as it becomes available. Conventionally, IB implements an absolute representation in each packet.